<?php

/**
 * 是否为空，空则返回设定的默认值
 * @param $val
 * @param $default
 * @return mixed
 */
function ifnull($val, $default)
{
    if (!$val) {
        return $default;
    }
    return $val;
}

/**
 * 检测是否是邮箱地址
 * @param $str
 * @return bool
 */
function is_email($str)
{
    return (!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
}


/**
 * 检测是否是UTF8字符集
 * @param $string
 * @return bool
 */
function is_utf8($string)
{
    $c = 0;
    $b = 0;
    $bits = 0;
    $len = strlen($string);

    for ($i = 0; $i < $len; $i++) {
        $c = ord($string[$i]);

        if ($c > 128) {
            if (($c >= 254)) return false;
            elseif ($c >= 252) $bits = 6;
            elseif ($c >= 248) $bits = 5;
            elseif ($c >= 240) $bits = 4;
            elseif ($c >= 224) $bits = 3;
            elseif ($c >= 192) $bits = 2;
            else return false;

            if (($i + $bits) > $len) return false;

            while ($bits > 1) {
                $i++;
                $b = ord($string[$i]);
                if ($b < 128 || $b > 191) return false;
                $bits--;
            }
        }
    }
    return true;
}




/**
 * 检测是否是一个匿名函数
 * @param mixed $var
 * @return boolean
 */
function is_closure($var)
{
    return $var instanceof Closure;
}

/**
 * 检查是否为手机号码
 * @param $usj
 * @return bool
 */
function checkIsnumber($sj)
{
    //判断是否为手机号码
    if (!preg_match("/1[34578]{1}\d{9}$/", $sj)) {
        return false;
    }
    return true;
}
